#pragma once

#include "mediabase.h"
#include "AACEncoder.h"

class PushWork
{
public:
	PushWork();
	~PushWork();

	int Init(const Properties& properties);

private:
	// 音频test模式
	int audio_test_ = 0;
	std::string pcmInName_;

	// 麦克风采用属性
	int micSampleRate_ = 48000;
	int micSampleFmt_ = AV_SAMPLE_FMT_S16;
	int micChannels_ = 2;

	// 音频编码参数
	int audio_sampleRate_ = AV_SAMPLE_FMT_S16;
	int audio_bitrate_ = 128 * 1024;
	int audio_channels_ = 2;
	int audio_sample_fmt_; // 由具体的编码器决定
	int audio_ch_layout_; // 由 audio_channels_ 决定

	// 视频test模式
	int video_test_ = 0;
	std::string yuvInName_;

	// 桌面录制
	int desktop_x_ = 0;
	int desktop_y_ = 0;
	int desktop_width_;
	int desktop_height_;
	int desktop_fps_;
	int desktop_fmt_ = AV_PIX_FMT_YUV420P;

	// 视频编码属性
	int video_width_ = 1920;
	int video_height_ = 1080;
	int video_fps_;
	int video_gop_;
	int video_bitrate_;
	int video_b_frames_;

	// rtmp推流
	std::string rtmp_url_;
	int rtmp_debug_;


};